const app = getApp()

Page({
  data: {
    userInfo: null,
    unreadCount: 0
  },

  onShow() {
    // 每次显示页面时检查登录状态并获取最新用户信息
    const token = wx.getStorageSync('token')
    const cachedUserInfo = wx.getStorageSync('userInfo')

    if (token) {
      // 如果有缓存的用户信息，先显示缓存
      if (cachedUserInfo) {
        this.setData({
          userInfo: cachedUserInfo
        })
      }
      // 然后静默更新用户信息
      this.getUserProfile(true)
    }
  },

  // 获取用户信息
  async getUserProfile(silent = false) {
    try {
      const res = await new Promise((resolve, reject) => {
        wx.request({
          url: `${app.globalData.baseUrl}/api/users/profile`,
          method: 'GET',
          header: {
            'Authorization': `Bearer ${wx.getStorageSync('token')}`
          },
          success: resolve,
          fail: reject
        })
      })

      console.log('获取到的用户信息：', res)

      if (res.data && res.data.success) {
        // 存储用户信息到缓存
        wx.setStorageSync('userInfo', res.data.data.user)

        // 更新页面数据
        this.setData({
          userInfo: res.data.data.user
        })
      } else {
        throw new Error(res.data?.message || '获取用户信息失败')
      }
    } catch (error) {
      console.error('获取用户信息失败：', error)

      // 只有在非静默模式下才显示错误提示
      if (!silent) {
        wx.showToast({
          title: '获取用户信息失败',
          icon: 'none'
        })
      }

      // 如果获取信息失败，尝试从缓存读取
      const cachedUserInfo = wx.getStorageSync('userInfo')
      if (cachedUserInfo) {
        this.setData({
          userInfo: cachedUserInfo
        })
      }
    }
  },

  showLogin() {
    wx.navigateTo({
      url: '/pages/login/login'
    })
  },

  handleLogout() {
    wx.showModal({
      title: '提示',
      content: '确定要退出登录吗？',
      success: (res) => {
        if (res.confirm) {
          // 清除所有相关缓存
          wx.removeStorageSync('token')
          wx.removeStorageSync('userInfo')
          this.setData({ userInfo: null })
          wx.showToast({ title: '已退出登录' })
        }
      }
    })
  },

  // 修改资料
  onEditProfile() {
    wx.navigateTo({
      url: '/pages/user/profile/profile'
    });
  },

  // 修改密码
  onChangePassword() {
    wx.navigateTo({
      url: '/pages/user/password/password'
    });
  }
})